O Modelo de Programação Cliente-Servidor é a arquitetura fundamental para aplicações distribuídas. Não é definido por hardware, mas por uma transação lógica entre dois processos: um cliente que inicia uma solicitação por um recurso, e um servidor que gerencia e fornece.
1. A Transação de 4 Etapas
Toda interação segue uma sequência rigorosa: (1) O cliente envia uma solicitação; (2) O servidor interpreta e manipula os recursos locais; (3) O servidor envia uma resposta; (4) O cliente manipula os dados recebidos (por exemplo, renderização de HTML).
2. Organização de Hardware
A comunicação depende do Adaptador de Rede, um dispositivo de entrada/saída. Os dados viajam da CPU através do Ponte de Entrada/Saída e Barramento do Sistema até Memória Principal. Em uma requisição web como http://www.google.com:80, os pacotes percorrem esses barramentos para alcançar o código da aplicação.
3. Abstração de Protocolo
Aplicações modernas usam Ordem de Bytes de Rede (big-endian) para consistência. Funções como getaddrinfo fornecem mapeamento de nome de domínio para endereço IP sem depender de protocolos específicos.